package org.dfzt.modules.message.service;

import java.util.Map;

public interface SendMessageService {

    /**
     * 发送系统消息
     * @param fromUser 发送人(用户登录账户)
     * @param toUser  发送给(用户登录账户)
     * @param title  消息主题
     * @param msgContent  消息内容
     */
    public void sendSysAnnouncement(String fromUser,String toUser,String title, String msgContent);

    /**
     * 发送系统消息
     * @param fromUser 发送人(用户登录账户)
     * @param toUser   发送给(用户登录账户)
     * @param title    通知标题
     * @param map  	   模板参数
     * @param templateCode  模板编码
     */
    public void sendSysAnnouncement(String fromUser, String toUser,String title, Map<String, String> map, String templateCode);

    /**
     *
     * @param fromUser 发送人(用户登录账户)
     * @param toUser 发送给(用户登录账户)
     * @param title 通知标题
     * @param map 模板参数
     * @param templateCode 模板编码
     * @param busType 业务类型
     * @param busId 业务id
     */
    public void sendSysAnnouncement(String fromUser, String toUser,String title, Map<String, String> map, String templateCode,String busType,String busId);

    /**
     * 通过消息中心模板，生成推送内容
     *
     * @param templateCode 模板编码
     * @param map          模板参数
     * @return
     */
    public String parseTemplateByCode(String templateCode, Map<String, String> map);


    /**
     * 发送系统消息
     * @param fromUser 发送人(用户登录账户)
     * @param toUser  发送给(用户登录账户)
     * @param title  消息主题
     * @param msgContent  消息内容
     * @param setMsgCategory  消息类型 1:消息2:系统消息
     */
    public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent, String setMsgCategory);

    /**queryTableDictByKeys
     * 发送系统消息
     * @param fromUser 发送人(用户登录账户)
     * @param toUser  发送给(用户登录账户)
     * @param title  消息主题
     * @param msgContent  消息内容
     * @param setMsgCategory  消息类型 1:消息2:系统消息
     * @param busType  业务类型
     * @param busId  业务id
     */
    public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent, String setMsgCategory,String busType,String busId);

    /**
     * 根据业务类型及业务id修改消息已读
     * @param busType
     * @param busId
     */
    public void updateSysAnnounReadFlag(String busType,String busId);
}
